home *** CD-ROM | disk | FTP | other *** search
- TITLE ZAP DIRECTORIES
- SUBTTL by Scott Pakin
-
- CODESEG SEGMENT PARA PUBLIC 'CODE'
- ASSUME CS:CODESEG,DS:CODESEG,ES:CODESEG
- ORG 0100H ;MAKE THIS A .COM FILE
-
- START PROC FAR ;PROGRAM STARTS HERE
- JMP OVER_DATA ;JUMP OVER DATA
-
- MYTITLE DB 127,127,127 ;PUT MY NAME IN PROGRAM
- DB 13,' ',13,10
- DB 'ZAPDIR',13,10
- DB 'by Scott Pakin',13,10,10
- DB 26
-
- FCB DB 0FFH ;EXTENDED FCB
- DB 5 DUP (0)
- DB 10H ;DIRECTORY
- DB 0 ;DEFAULT DRIVE
- TARGET DB 11 DUP (' ') ;DIRECTORY TO ERASE
- DB 32 DUP (0)
-
- NONAME DB 13,10,'E r r o r -- You must provide a directory '
- DB 'to completely remove!',13,10,'$'
- ERROR DB 13,10,'E r r o r -- Could not erase directory.'
- DB 13,10,'$'
-
- OVER_DATA: CLD ;DIRECTION = FORWARDS
- MOV SI,80H ;POINT TO COMMAND LINE
- MOV CL,[SI] ;GET NUMBER OF CHARACTERS TYPED
- OR CL,CL ;ZERO?
- JNZ GETTARGET ;NO -- GET TARGET DIRECTROY
-
- LEA DX,NONAME ;DISPLAY ERROR MESSAGE
- MOV AH,9
- INT 21H
- MOV AL,1 ;ERRORLEVEL 1
- JMP QUIT ;EXIT PROGRAM
-
- GETTARGET: XOR CH,CH ;GET COUNT IN CX
- SUB CL,1 ;FORGET CR
- MOV SI,82H ;READ FROM COMMAND LINE
- LEA DI,TARGET ;WRITE TO TARGET
- REP MOVSB
-
- DELETE: LEA DX,FCB ;ERASE DIRECTORY
- MOV AH,13H
- INT 21H
- OR AL,AL ;ANY ERRORS?
- JZ END ;NO -- END
-
- LEA DX,ERROR ;GIVE ERROR MESSAGE
- MOV AH,9
- INT 21H
- MOV AL,1 ;ERRORLEVEL 1
- JMP QUIT
-
- END: XOR AL,AL ;RETURN TO DOS
- QUIT: MOV AH,4CH ;PROVIDING AN ERRORLEVEL VALUE
- INT 21H
-
- START ENDP
- CODESEG ENDS
- END START ;GO TO START FIRST